package com.bestcem.xm.qdes.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bestcem.xm.component.mybatis.mapper.XmCommonMapper;
import com.bestcem.xm.qdes.controller.param.ProjectLibPageParam;
import com.bestcem.xm.qdes.controller.vo.QdesLibProjectVo;
import com.bestcem.xm.qdes.entity.QdesLibProject;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author guitao.lu
 * @version V1.0
 * @date 2022/8/1
 */
@Mapper
public interface QdesLibProjectMapper extends XmCommonMapper<QdesLibProject> {
    /**
     * 查询问卷库
     *
     * @param page  分页
     * @param param 参数
     * @return 数据
     */
    Page<String> pageLibproject(Page page, @Param("param") ProjectLibPageParam param);

    /**
     * 根据libType查询问卷库
     *
     * @param page  分页
     * @param param 参数
     * @return 数据
     */
    Page<String> pageLibprojectByLibType(Page page, @Param("param") ProjectLibPageParam param);

    /**
     * 根据标签查询问卷库
     *
     * @param page  分页
     * @param param 参数
     * @return 数据
     */
    Page<String> pageLibprojectByTags(Page page, @Param("param") ProjectLibPageParam param);

    /**
     * 根据id集合查询问卷
     *
     * @param ids   ids
     * @param param 参数
     * @return 数据
     */
    List<QdesLibProjectVo> pageLibprojectByIds(@Param("ids") List<String> ids, @Param("param") ProjectLibPageParam param);


    /**
     * 查询所有问卷库
     *
     * @param param 参数
     * @return 数据
     */
    List<QdesLibProjectVo> getAllIndustryProject(@Param("param") ProjectLibPageParam param);

    /**
     * 查询问卷库
     *
     * @param id id
     * @return 数据
     */
    QdesLibProjectVo getOneProjectById(@Param("id") String id);

    /**
     * 查询问卷库创建用户
     *
     * @param orgId 组织id
     * @return 数据
     */
    List<String> getLibProjectUser(@Param("orgId") String orgId);

    /**
     * 根据标签查找公共的问卷库
     *
     * @param labelIds 组织id
     * @return 数据
     */
    List<String> getLibOfficialLabel(@Param("labelIds") List<String> labelIds);

    /**
     * 根据标签查询问卷库
     *
     * @param page  分页
     * @param param 参数
     * @return 数据
     */
    Page<String> pageOfficialLibproject(Page<?> page, @Param("param") ProjectLibPageParam param);

    /**
     * 根据标签查询问卷库
     *
     * @param ids   分页
     * @param param 参数
     * @return 数据
     */
    List<QdesLibProjectVo> getOfficialByIds(@Param("ids") List<String> ids, @Param("param") ProjectLibPageParam param);
}